package com.codemonkey.lq.tools;

// http://tech.it168.com/j/2007-12-20/200712201500982.shtml
public class TomcatServer {
//	private static final Logger logger = LoggerFactory.getLogger(TomcatServer.class);
//
//	public static void main(String[] args) {
//		try {
//			new TomcatServer();
//		} catch (Throwable t) {
//			logger.error("", t);
//		}
//	}
//
//	private Embedded tomcat;
//
//	// tomcat根目录路径
//	private String catalinaHome;
//
//	// web项目所在路径
//	private String projectHome;
//
//	public TomcatServer() {
//		initConf();
//
//		tomcat = new Embedded();
//		tomcat.setCatalinaHome(catalinaHome);
//		Engine engine = tomcat.createEngine();
//		Host host = tomcat.createHost("localhost", projectHome);
//		host.addChild(tomcat.createContext("", ""));
//		host.addChild(tomcat.createContext("/", "webapp"));
//		engine.addChild(host);
//		engine.setDefaultHost("localhost");
//		tomcat.addEngine(engine);
//		tomcat.addConnector(tomcat.createConnector("", 8081, false));
//		registerShutdownHook();
//		try {
//			tomcat.start();
//		} catch (Exception e) {
//			throw new RuntimeException(e);
//		}
//	}
//
//	private void initConf() {
//		Properties properties = new Properties();
//		try {
//			properties.load(TomcatServer.class.getResourceAsStream("/tomcat-conf.properties"));
//			catalinaHome = properties.getProperty("catalina.home");
//
//			File f = new File(".");
//			projectHome = f.getAbsolutePath();
//		} catch (IOException e) {
//			throw new RuntimeException(e);
//		}
//	}
//
//	private void registerShutdownHook() {
//		Runtime.getRuntime().addShutdownHook(new Thread() {
//			@Override
//			public void run() {
//				try {
//					tomcat.stop();
//				} catch (LifecycleException e) {
//					throw new RuntimeException(e);
//				}
//			}
//		});
//	}
}
